home *** CD-ROM | disk | FTP | other *** search
- name test
- _text segment byte public 'code'
- dgroup group _data,_bss
- assume cs:_text,ds:dgroup,ss:dgroup
- _text ends
- _data segment word public 'data'
- _d@ label byte
- _data ends
- _bss segment word public 'bss'
- _b@ label byte
- _bss ends
- _text segment byte public 'code'
-
- public _sysint13
-
- flags dw ?
-
- @ab equ 4
-
- _sysint13 proc
-
- push bp
- mov bp,sp
-
- irp reg,<ax,bx,cx,dx,si,di,ds,es>
- push reg
- endm
-
- mov bx,@ab[bp]
- mov ax,[bx]
- mov cx,4[bx]
- mov dx,6[bx]
- mov si,10[bx]
- mov di,12[bx]
- mov ds,ss:[14][bx]
- mov es,ss:[16][bx]
- mov bx,ss:[2][bx]
-
- push bp
- int 13h
- pop bp
-
- pushf
- pop flags
-
- push bx
- mov bx,@ab[2][bp]
-
- pop [2][bx]
- mov ss:[16][bx],es
- mov ss:[14][bx],ds
- mov [bx],ax
- mov 4[bx],cx
- mov 6[bx],dx
- mov 10[bx],si
- mov 12[bx],di
-
- irp reg,<es,ds,di,si,dx,cx,bx,ax>
- pop reg
- endm
-
- pop bp
- mov ax,flags
-
- ret
-
- _sysint13 endp
- _text ends
- _data segment word public 'data'
- _s@ label byte
- _data ends
- _text segment byte public 'code'
- public _sysint13
- _text ends
- end
-